<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:pou="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core">
    
    <!-- @name: Usuarios -->
    <!-- @descrption: Interfaz para el mantenimiento de los usuarios del sistema -->
    <!-- @autor: Antonio -->
    <h:head>
        <title>Usuarios</title>
    </h:head>
    <h:body>
        <ui:composition template="/templates/commonLayout.xhtml">
            <ui:define name="title">
                Mantenimiento de Usuarios
            </ui:define>
            <ui:define name="titulo">
                <h:outputText value="MANTENIMIENTO DE USUARIOS"/>
            </ui:define>
            <ui:define name="contenido_ui">                        
                <h:form id="form" style="padding-left: 25px; padding-right: 25px">
                    <pou:growl id="messages" />  
                    <pou:commandButton value="Agregar Usuario" icon="add"
                                       actionListener="#{usuarioController.prepareCreate}"
                                       oncomplete="nuevoUsuario.show()"
                                       update=":newUser"/>
                    <br />
                    <br />
                    <pou:dataTable id="tabla_usuarios" var="user"
                                   value="#{usuarioController.users}"
                                   editable="true" selection="#{usuarioController.current}"
                                   emptyMessage="No se encontraron usuarios" 
                                   sortBy="" paginator="true" rows="10"
                                   style="min-width: 500px;" selectionMode="single"
                                   rowKey="#{user.idUsuario}">

                        <pou:ajax event="rowEdit" listener="#{usuarioController.edit}" update=":form:messages" />  


                        <pou:column headerText="ID USUARIO" sortBy="">
                            <h:outputLabel value="#{user.idUsuario}"/>
                        </pou:column>

                        <pou:column headerText="NOMBRE DE USUARIO" sortBy="">
                            <pou:cellEditor>  
                                <f:facet name="output">  
                                    <h:outputLabel value="#{user.nombreUsuario}" />  
                                </f:facet>  
                                <f:facet name="input">  
                                    <pou:inputText value="#{user.nombreUsuario}"/>  
                                </f:facet>  
                            </pou:cellEditor>  
                        </pou:column>
                        <pou:column headerText="CONTRASEÑA" sortBy="">
                            <pou:cellEditor>  
                                <f:facet name="output">  
                                    <h:outputLabel value="#{user.contrasenaUsuario}" />  
                                </f:facet>  
                                <f:facet name="input">  
                                    <pou:inputText value="#{user.contrasenaUsuario}"/>  
                                </f:facet>  
                            </pou:cellEditor>  
                        </pou:column>
                        <pou:column headerText="PERMISO" sortBy="">
                            <pou:cellEditor>  
                                <f:facet name="output">  
                                    <h:outputLabel value="#{user.idPerfil}" />  
                                </f:facet>  
                                <f:facet name="input">  
                                    <pou:selectOneMenu value="#{user.idPerfil}">
                                        <f:selectItem itemLabel="Administrador" itemValue="1"/>
                                        <f:selectItem itemLabel="Registro" itemValue="2"/>
                                    </pou:selectOneMenu>  
                                </f:facet>  
                            </pou:cellEditor>  
                        </pou:column>
                        <pou:column headerText="OPCIONES">
                            <pou:rowEditor />
                            <pou:commandLink update=":confirm" oncomplete="confirmDelete.show()">
                                <pou:graphicImage value="/resources/icons/trash_blue.png" width="14" height="14"/>
                            </pou:commandLink>
                        </pou:column>
                    </pou:dataTable>

                </h:form>
            </ui:define>
            
            
            <!-- Ventana emergente para introducir datos de nuevo usuario -->
            <ui:define name="dialog" >

                <pou:dialog widgetVar="nuevoUsuario" header="Nuevo Usuario" 
                            showEffect="fade" hideEffect="fade" modal="true" 
                            resizable="false">  
                    <h:form id="newUser">
                        <h:panelGrid columns="2" columnClasses="column" cellpadding="5">

                            <h:outputLabel value="Nombre: " style="font-weight: bold"/>  
                            <pou:inputText  value="#{usuarioController.current.nombreUsuario}"
                                            required="true">
                                <f:validateLength maximum="15" />
                            </pou:inputText>

                            <h:outputLabel value="Contraseña: " style="font-weight: bold"/>
                            <pou:password value="#{usuarioController.current.contrasenaUsuario}"
                                          required="true" maxlength="20"/>
                                              
                            <h:outputLabel value="Permiso" style="font-weight: bold"/>  
                            <pou:selectOneMenu value="#{usuarioController.current.idPerfil}">
                                <f:selectItem itemLabel="Administrador" itemValue="1"/>
                                <f:selectItem itemLabel="Registro" itemValue="2"/>
                            </pou:selectOneMenu>
                                
                            <pou:commandButton value="Guardar" icon="save" 
                                               actionListener="#{usuarioController.create}"
                                               update=":form" oncomplete="nuevoUsuario.hide()"/>
                                                   
                        </h:panelGrid>
                    </h:form>
                </pou:dialog>

                <!-- Ventana de confirmación de elminación de usuario -->
                <pou:confirmDialog id="confirm" widgetVar="confirmDelete"
                                   header="Confirmar"
                                   message="¿Desea Eliminar #{usuarioController.current.nombreUsuario}?">
                    <h:form>
                        <pou:commandButton value="Aceptar" actionListener="#{usuarioController.delete}" 
                                           update=":form" oncomplete="confirmDelete.hide()"/>
                        <pou:commandButton value="Cancelar" onclick="confirmDelete.hide()"/>
                    </h:form>
                </pou:confirmDialog>

            </ui:define>
        </ui:composition>
    </h:body>
</html>

